package kr.hkit.powerjava.chapter25.chat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class QuizClient {
	public static void main(String[] args) throws IOException {
		
		Socket quizSocket = null;
		PrintWriter out = null;  //서버로 보내기 위한 출력스트림
		BufferedReader in = null;  //서버에게서 온 메세지를 읽기 위한 입력 스트림
		BufferedReader user = null; //키보드로부터 입력받기 위한 입력스트림
		
		String serverMsg; //서버로부터 온 메세지
		String sendMsg; //서버로 보낸 메세지
		
		try {
			quizSocket = new Socket("localhost" , 5555);
			out = new PrintWriter(quizSocket.getOutputStream(), true); //버퍼를 바로 비워서 보내라
			in = new BufferedReader(new InputStreamReader(quizSocket.getInputStream()));
			user = new BufferedReader(new InputStreamReader(System.in)); //입력받음
			
		} catch (UnknownHostException e) {
			System.err.println("localhost에 접근할 수 없습니다.");
			System.exit(-1); 
		} catch (IOException e) {
			e.printStackTrace();
		}

		while ((serverMsg = in.readLine()) !=null) {
			System.out.println("서버 : " + serverMsg); //서버로부터 온 메세지 출력
			if (serverMsg.equalsIgnoreCase("quit")) {
				break;
			} 
			sendMsg =user.readLine();
			if (sendMsg != null) {
				System.out.println("클라이언트: " + sendMsg);
				out.println(sendMsg);
			}
		}
		//역순으로 종료시켜주기
		user.close();
		in.close();
		out.close();
		quizSocket.close();
	}
}
